/* Copyright (c) 2001, Nokia. All rights reserved */

#include "TimeOutTimer.h"
#include "TimeOutNotifier.h"
//#include "Sockets.pan"


CTimeOutTimer* CTimeOutTimer::NewL(const TInt aPriority, MTimeOutNotifier& aTimeOutNotify)
{
	CTimeOutTimer* self = CTimeOutTimer::NewLC(aPriority, aTimeOutNotify);
	CleanupStack::Pop(self);
	return self;
}


CTimeOutTimer* CTimeOutTimer::NewLC(const TInt aPriority, MTimeOutNotifier& aTimeOutNotify)
{
	CTimeOutTimer* self = new (ELeave)CTimeOutTimer(aPriority, aTimeOutNotify);
	CleanupStack::PushL(self);
	self->ConstructL();
	return self;
}


CTimeOutTimer::CTimeOutTimer(const TInt aPriority, MTimeOutNotifier& aTimeOutNotify) : 
CTimer(aPriority), iNotify(aTimeOutNotify)
{
}


CTimeOutTimer::~CTimeOutTimer()
{
}


void CTimeOutTimer::ConstructL()
{
	CTimer::ConstructL();
	CActiveScheduler::Add(this);
}

void CTimeOutTimer::RunL()
{
	// Timer request has completed, so notify the timer's owner
	if (iStatus == KErrNone)
	{
		iNotify.TimerExpired();
	}
	else
	{
		//  	  User::Panic(KPanicSockets, ESocketsBadStatus);
	}
}

